<?php
/**
 * Класс-хранилище конфигурации приложения.
 * Реализует шаблон синглтона.
 * @author Vadim Belyaev <vadimbelyaev@gmail.com>
 */
class Config
{
    /**
     * @var Config Единственный экземпляр класса
     */
    private static $_instance = false;

    /**
     * @var array Массив хранимых данных
     */
    private $_data;

    /**
     * Конструктор класса
     */
    private function __construct()
    {
        $this->_data = array();
    }

    /**
     * Возвращает единственный экземпляр класса
     * @return Config
     */
    public static function getInstance()
    {
        if (self::$_instance === false) {
            self::$_instance = new Config();
        }

        return self::$_instance;
    }

    /**
     * Магический метод
     */
    public function __set($name, $value)
    {
        $this->_data[$name] = $value;
    }

    /**
     * Магический метод
     */
    public function __get($name)
    {
        if (array_key_exists($name, $this->_data)) {
            return $this->_data[$name];
        } else {
            return null;
        }
    }
}

